package com.lz.wsy.oss;
 

import com.lz.wsy.pojo.OssProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
 
/**
 * 文件管理接口
 * 提供文件各种形式上传, 下载, 删除等操作
 * @Author 千锋健哥
 */
@RestController
@RequestMapping("/file")
public class FileManagerController {

    @Autowired
    private OssProperties ossProperties;

    /*//OSS服务器访问域名
    @Value("${aliyun.oss.endpoint}")
    private String endpoint;
 
    //子账户名
    @Value("${aliyun.oss.accessKeyId}")
    private String accessKeyId;
 
    //子账户密码
    @Value("${aliyun.oss.accessKeySecret}")
    private String accessKeySecret;
 
    //桶名字
    @Value("${aliyun.oss.bucketName}")
    private String bucketName;*/
 
    /**
     * byte数组形式上传
     * @param file
     * @Author 千锋健哥
     */
    @PostMapping("/upload1")
    public void upload(@RequestParam("file") MultipartFile file) throws Exception {
        AliyunOSSUtil.uploadByByteArrayFile(ossProperties.getEndpoint(), ossProperties.getKeyid(),
                ossProperties.getKeysecret(), ossProperties.getBucketname(), file.getOriginalFilename(), file.getBytes());
    }
     
    /**
     * 输入流形式上传
     * @param file
     * @Author 千锋健哥
     */
    @PostMapping("/upload2")
    public void upload2(@RequestParam("file") MultipartFile file) throws Exception {
        AliyunOSSUtil.uploadByInputStreamFile(ossProperties.getEndpoint(), ossProperties.getKeyid(),
                ossProperties.getKeysecret(), ossProperties.getBucketname(), file.getOriginalFilename(), file.getInputStream());
    }

    /**
     * 上传图片并返回上传后的URL地址
     * @param file
     * @Author 千锋健哥
     */
    @PostMapping("/upload3")
    public String upload3(@RequestParam("file") MultipartFile file) throws Exception {
        String url = AliyunOSSUtil.uploadImage(ossProperties.getEndpoint(), ossProperties.getKeyid(),
                ossProperties.getKeysecret(), ossProperties.getBucketname(), file.getOriginalFilename(), file.getBytes());
        System.out.println("===千锋健哥===" + url);
        return url;
    }

    /**
     * 删除文件
     * @param objName 需要删除的对象名称
     * @Author 千锋健哥
     */
    @DeleteMapping("/delete")
    public void deleteFile(String objName) {
        AliyunOSSUtil.deleteFile(ossProperties.getEndpoint(), ossProperties.getKeyid(),
                ossProperties.getKeysecret(), ossProperties.getBucketname(), objName);
    }
}